#define _CRT_SECURE_NO_WARNINGS



//https://www.luogu.com.cn/problem/P2136


#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e3 + 10, M = 1e4 + 10;
int n, m;
struct node
{
	int a, b, c;
}e[M];
int dist[N];
bool flag;
bool bf(int s)
{
	memset(dist, 0x3f, sizeof dist);
	dist[s] = 0;
	for (int i = 1; i <= n; i++)
	{
		flag = false;
		for (int j = 1; j <= m; j++)
		{
			int a = e[j].a, b = e[j].b, c = e[j].c;
			if (dist[a] + c < dist[b])
			{
				flag = true;
				dist[b] = dist[a] + c;
			}
		}
		if (!flag)
			return flag;
	}
	return flag;
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		cin >> e[i].a >> e[i].b >> e[i].c;
		e[i].c = -e[i].c;

	}

	int ret = 0;
	bool st = bf(1);
	if (st)
	{
		cout << "Forever love" << endl;
		return 0;
	}
	ret = dist[n];
	st = bf(n);
	if (st)
	{
		cout << "Forever love" << endl;
		return 0;
	}
	cout << min(ret, dist[1]) << endl;
	return 0;
}


